/**
 * @constructor
 * @param {POSITION} position
 * @param {DIRECTION} direction
 * @returns {MowerVector}
 */
function MowerVector(position, direction) {
	this.position = position;
	this.direction = direction;
	this.compass = new Compass();
};

/**
 * @public
 * @returns {MowerVector}
 */
MowerVector.prototype.advance = function() {
	var newPosition = new Position(this.position.x + this.direction.xAdvancement, 
			this.position.y + this.direction.yAdvancement);
	return new MowerVector(newPosition, this.direction);
};

/**
 * @public
 * @param {COMMAND} command
 * @returns {MowerVector}
 */
MowerVector.prototype.rotate = function(command) {
	var newDirection = this.compass.rotateCW(this.direction, command);
	return new MowerVector(this.position, newDirection);
};